import ECCurveNameEnum from './enums/ECCurveNameEnum';
import AESAlgorithmEnum from './enums/AESAlgorithmEnum';
import SignHashTypeEnum from './enums/SignHashTypeEnum';
class SpecParams {
    private cureveName!: string; /* 曲线 */
    private algorithm!: string; /* aes加密算法 */
    private signHashType!: string; /* hash类型 */

    public static getDefaultParams() {
        const specParams: SpecParams = new SpecParams();
        specParams.setCureveName(ECCurveNameEnum.SECP256K1);
        specParams.setAESAlgo(AESAlgorithmEnum.AES256CBC);
        specParams.setSignHashType(SignHashTypeEnum.SHA3_256);
        return specParams;
    }
    public getCureveName(): string {
        return this.cureveName;
    }
    public setCureveName(cureveName: string) {
        this.cureveName = cureveName;
    }
    public getAESAlgo() {
        return this.algorithm;
    }
    public setAESAlgo(algorithm: string) {
        this.algorithm = algorithm;
    }
    public getSignHashType() {
        return this.signHashType;
    }
    public setSignHashType(hashType: string) {
        this.signHashType = hashType;
    }
}

export default SpecParams;
